package com.kang.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.kang.pojo.RoleUser;
import com.kang.pojo.User;
import com.vonechina.entity.page.UserPage;

/**
 * 用户UserMapper
 * 
 * @author ysq
 *
 */
public interface UserMapper {
	/**
	 * 根据用户userID删除user用户
	 * 
	 * @param userid
	 * @return
	 */
	int deleteByPrimaryKey(Integer userid);

	/**
	 * 添加用户user
	 * 
	 * @param record
	 * @return
	 */
	int insertSelective(User record);

	/**
	 * 根据userID修改用户user信息
	 * 
	 * @param record
	 * @return
	 */
	int updateByPrimaryKeySelective(User record);

	/**
	 * 根据accountName账号password密码查询user用户
	 * 
	 * @param map
	 * @return
	 */
	User selUser(Map<String, Object> map);

	/**
	 * 根据loginname用户名查询user是否有相同的用户，返回数量
	 * 
	 * @param loginname
	 * @return
	 */
	int selUserByLoginName(String loginname);

	/**
	 * 根据accountName登录账户查询user是否有相同的用户，返回数量
	 * 
	 * @param accountName
	 * @return
	 */
	int selUserByAccountName(String accountName);

	/**
	 * 根据UserPage条件查询user用户数据List
	 * 
	 * @param userPage
	 * @return
	 */
	List<RoleUser> selstcUser(UserPage userPage);

	/**
	 * 根据UserPage条件查询user用户数据List总条数
	 * 
	 * @param userPage
	 * @return
	 */
	int selstcUsercount(UserPage userPage);

	/**
	 * 根据用户userID查询出用户user信息和关联的角色信息-用于修改编辑用户
	 * 
	 * @param id
	 * @return
	 */
	List<Map<?, ?>> getUserById(@Param("id") String id);

	/**
	 * 通过邮轮和部门查询用户
	 * 
	 * @param cruiseID
	 * @param organizationID
	 * @return
	 */
	List<User> listUserByCuirseAndOrg(@Param("cruiseID") Integer cruiseID,
			@Param("organizationID") Integer organizationID);

	/**
	 * 根据userID修改user用户密码
	 * 
	 * @param userID
	 * @param paw1
	 * @return
	 */
	int updateUserPwd(@Param("userID") Integer userID,
			@Param("paw1") String paw1);
}